home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Source Code
/
Libraries
/
WASTE 1.2
/
WASTE Demo ƒ
/
WEDemoDrags.c
< prev
next >
Wrap
Text File
|
1996-05-19
|
2KB
|
83 lines
/*
WASTE Demo Project:
Drag Handlers
Copyright © 1993-1996 Marco Piovanelli
All Rights Reserved
C port by John C. Daub
*/
#ifndef __WEDEMOAPP__
#include "WEDemoIntf.h"
#endif
// static variables for the drag handlers UPPs
static DragTrackingHandlerUPP sMyTrackingHandlerUPP = nil;
static DragReceiveHandlerUPP sMyReceiveHandlerUPP = nil;
static pascal OSErr MyTrackingHandler( DragTrackingMessage message, WindowRef window, void *refCon, DragReference drag )
{
#pragma unused (refCon)
DocumentHandle hDocument;
if ( ( window != nil ) && ( ( hDocument = GetWindowDocument( window ) ) != nil ) )
{
return WETrackDrag( message, drag, (*hDocument)->we );
}
return noErr;
}
static pascal OSErr MyReceiveHandler( WindowRef window, void *refCon, DragReference drag )
{
#pragma unused (refCon)
DocumentHandle hDocument;
if ( ( window != nil ) && ( ( hDocument = GetWindowDocument( window ) ) != nil ) )
{
return WEReceiveDrag( drag, (*hDocument)->we );
}
return noErr;
}
OSErr InstallDragHandlers( void )
{
OSErr err;
sMyTrackingHandlerUPP = NewDragTrackingHandlerProc( MyTrackingHandler );
sMyReceiveHandlerUPP = NewDragReceiveHandlerProc( MyReceiveHandler );
if ( ( err = InstallTrackingHandler( sMyTrackingHandlerUPP, nil, nil ) ) != noErr )
{
return err;
}
if ( ( err = InstallReceiveHandler( sMyReceiveHandlerUPP, nil, nil ) ) != noErr )
{
return err;
}
return noErr;
}
OSErr RemoveDragHandlers( void )
{
OSErr err;
if ( ( err = RemoveTrackingHandler( sMyTrackingHandlerUPP, nil ) ) != noErr )
{
return err;
}
if ( ( err = RemoveReceiveHandler( sMyReceiveHandlerUPP, nil ) ) != noErr )
{
return err;
}
return noErr;
}